package com.myself.ssoserver.utils

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder

object PasswordUtils {
    // 配置加密强度（默认12，值越大越安全但越慢）
    private val encoder = BCryptPasswordEncoder(12)

    /**
     * 加密密码（自动加盐）
     * @param rawPassword 明文密码
     * @return 带盐值的加密字符串
     */
    fun encode(rawPassword: String): String {
        return encoder.encode(rawPassword)
    }

    /**
     * 验证密码（自动提取盐值）
     * @param rawPassword 用户输入的明文密码
     * @param encodedPassword 数据库存储的加密字符串
     */
    fun matches(rawPassword: String, encodedPassword: String): Boolean {
        return encoder.matches(rawPassword, encodedPassword)
    }
}